/*
 * Copyright © 2015-2017 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package ch.app.test.qianzhiku.pojo;

import com.alibaba.fastjson.annotation.JSONField;

import java.util.Date;

/**
 * 派件签收操作记录:正常签收/异常签收.
 *
 * @author zengtao
 * @since 1.0
 */
public class SignatureRecord extends AbstractRecord {

    // 签收类型
    private String signoffTypeCode;

    // 签收人
    private String recieverSignoff;

    // 实收到付款
    private Double amountCollected;

    // 实收代收款
    private Double amountAgency;

    // 派送失败原因
    private String deliveryFailReasonCode;

    // 派送失败原因描述
    private String deliveryFailReason;

    // 派件联系人
    private String contact;

    // 派件联系时间
    @JSONField(format = "yyyy-MM-dd HH:mm:ss.SSS")
    private Date contactTime;

    // 派件联系结果
    private String contactResult;

    // 派件id
    private String deliveryId;

    //派件时间
    @JSONField(format = "yyyy-MM-dd HH:mm:ss.SSS")
    private Date deliveryTime;

    // 是否首次成功签收标志
    private String fstSuccessSiginoff;

    // 是否填写签收人姓名
    private String hasSignName;

    // 是否有签收图片
    private String hasSignPic;

    public String getDeliveryId() {
        return deliveryId;
    }

    public void setDeliveryId(final String deliveryId) {
        this.deliveryId = deliveryId;
    }

    /**
     * @return Date
     */
    public Date getDeliveryTime() {
        if (deliveryTime == null) {
            return null;
        } else {
            return (Date) deliveryTime.clone();
        }
    }

    /**
     * @param deliveryTime deliveryTime
     */
    public void setDeliveryTime(final Date deliveryTime) {
        if (deliveryTime == null) {
            this.deliveryTime = null;
        } else {
            this.deliveryTime = (Date) deliveryTime.clone();
        }
    }

    public String getFstSuccessSiginoff() {
        return fstSuccessSiginoff;
    }

    public void setFstSuccessSiginoff(final String fstSuccessSiginoff) {
        this.fstSuccessSiginoff = fstSuccessSiginoff;
    }

    public String getSignoffTypeCode() {
        return signoffTypeCode;
    }

    public void setSignoffTypeCode(final String signoffTypeCode) {
        this.signoffTypeCode = signoffTypeCode;
    }

    public String getRecieverSignoff() {
        return recieverSignoff;
    }

    public void setRecieverSignoff(final String recieverSignoff) {
        this.recieverSignoff = recieverSignoff;
    }

    public Double getAmountCollected() {
        return amountCollected;
    }

    public void setAmountCollected(final Double amountCollected) {
        this.amountCollected = amountCollected;
    }

    public Double getAmountAgency() {
        return amountAgency;
    }

    public void setAmountAgency(final Double amountAgency) {
        this.amountAgency = amountAgency;
    }

    public String getDeliveryFailReasonCode() {
        return deliveryFailReasonCode;
    }

    public void setDeliveryFailReasonCode(final String deliveryFailReasonCode) {
        this.deliveryFailReasonCode = deliveryFailReasonCode;
    }

    public String getDeliveryFailReason() {
        return deliveryFailReason;
    }

    public void setDeliveryFailReason(final String deliveryFailReason) {
        this.deliveryFailReason = deliveryFailReason;
    }

    public String getContact() {
        return contact;
    }

    public void setContact(final String contact) {
        this.contact = contact;
    }

    /**
     * @return Date
     */
    public Date getContactTime() {
        if (contactTime == null) {
            return null;
        } else {
            return (Date) contactTime.clone();
        }
    }

    /**
     * @param contactTime contactTime
     */
    public void setContactTime(final Date contactTime) {
        if (contactTime == null) {
            this.contactTime = null;
        } else {
            this.contactTime = (Date) contactTime.clone();
        }
    }

    public String getContactResult() {
        return contactResult;
    }

    public void setContactResult(final String contactResult) {
        this.contactResult = contactResult;
    }

    public String getHasSignName() {
        return hasSignName;
    }

    public void setHasSignName(final String hasSignName) {
        this.hasSignName = hasSignName;
    }

    public String getHasSignPic() {
        return hasSignPic;
    }

    public void setHasSignPic(final String hasSignPic) {
        this.hasSignPic = hasSignPic;
    }
}
